package com.codesuc.aichat.aiAgent.strategy;

import com.codesuc.aichat.aiAgent.request.ChatRequest;
import com.codesuc.aichat.aiAgent.response.ChatResponse;
import reactor.core.publisher.Flux;

/**
 * @Author: ZhangGongMing
 * @CreateTime: 2025/9/23 21:02
 * @description: AI 服务顶层接口
 * @Version: 1.0
 */
public interface AIService {

    /**
     * 获取 AI 服务提供商名称
     *
     * @return AI 服务提供商名称
     */
    String getServiceName();

    /**
     * 文本对话
     *
     * @param request 聊天请求
     * @return 聊天响应
     */
    Flux<ChatResponse> chat(ChatRequest request);

    /**
     * 实时语音识别
     *
     * @return 聊天响应
     */
    String audioASR();

    /**
     * 手动停止实时语音识别
     */
    void stopAudioASR();

    /**
     * 语音合成
     *
     * @param text 文本
     */
    void audioTTS(String text, Long roleId);

}
